Tema 4

  1. Dentro de los siguientes escenarios identifique los posibles errores o anomalías que podrían producirse en la lógica del programa y que podrían ser modelados como excepciones:

    • Escenario 1 Una cuenta bancaria admite retirada de fondos solo si el saldo es positivo. Las operaciones de retirar fondos desde el canal online solo se harán si la cantidad es inferior a 5000 euros, si es superior, se emitirá la correspondiente notificación. Si desde un terminal se introduce tres veces mal el pin, el sistema bloquea la cuenta.
    • Escenario 2 Una facultad matricula a los alumnos siguiendo las siguientes restricciones: para matricularse en extraordinaria un alumno debe haber cursado la asignatura al menos una vez en ordinaria.

Solución:

 

  1. ¿Qué problema encuentras en el siguiente bloque de tratamiento de excepciones?

Solución:

Las excepciones 2 y 3 nunca se ejecutarán, ya que la excepción general esta la primera. El orden de las excepciones es importante e influye en el tratamiento de las mismas.

 

  1. Dado el siguiente fragmento de código:

¿Que se imprime por pantalla el programa si se introduce por teclado la letra «a»?

No ha introducido un numero entero.

 

  1. ¿Qué tipo de excepciones o condiciones anómalas crees que se manejan en el siguiente fragmento de código?

Solución:

 

  1. Dado el siguiente fragmento de código:

Responda a las siguientes cuestiones:

 

  1. Dados los siguientes bloques de instrucciones:

    Bloque A:

     

    Bloque B:

¿Son equivalentes los bloques manejadores de eventos a y b?

No, aunque se trata de los mismos manejadores, en el bloque b no se conoce que función ha lanzado la excepción.

 

  1. Dados los siguientes bloques de instrucciones:

    Bloque A:

     

    Bloque B:

¿Son equivalentes los bloques manejadores de eventos a y b?

No son equivalentes. La función f() en su tratamiento lanza la excepción al nivel superior, sin embargo, la función g() no lo hace.

 

  1. Dada la siguiente definición de clase, defina correctamente un bloque que capture la excepción lanzada y que imprima un mensaje por pantalla que informe sobre el error.

Solución:

 

  1. Dado el siguiente bloque manejador de eventos:

 

  1. Dada la siguiente clase, usa un bloque manejador de eventos apropiado sabiendo que las condiciones anómalas están representadas por Excepciones en el flujo de entrada/salida (IOException) u otras en general (Exception).

 

  1. El siguiente bloque manejador de excepciones:

¿Es capaz de manejar todas las excepciones de entrada/salida?

Sí, toda excepción será subtipo de IOExcepction.